/* 渲染用户信息 */
/* 分析：
    1.发送 ajax请求  2.将用户信息存储到storage 3.渲染下拉框
 */
function getGoodsInfo() {
    Ajax({
        url: "http://localhost/lin/server/goods.php",
        success(msg) {
            /* 当前页是第一页 */
            sessionStorage.setItem("currentPage", 1)
            // 将数据存储一份到storage里面
            sessionStorage.setItem("goodstInfo", msg);
            //将数据转换成对象,从对象当中取出10条,用于渲染工作
            msg = JSON.parse(msg).slice(0, 10)
            //调用渲染页面
            renderPage(msg);
        }
    })
}
getGoodsInfo();


// 渲染页面
function renderPage(msg) {
    const tbody = document.querySelector("tbody")
    // console.log(tbody);
    tbody.innerHTML = "";
    msg.forEach((item, index) => {
        let str = `
            <tr>
                <td>${item.gid}</td>
                <td>${item.bname}</td>
                <td>${item.bprice}</td>
                <td>${item.bnumber}</td>
                <td>${item.bcategory}</td>
                <td>
                    <button type="button" class="btn btn-outline btn-sm " data-bs-toggle="modal"
                    data-bs-target="#myModaAdd2" data-edit=edit id="${item.gid}">编辑</button>
                    <button type="button" class="btn btn-outline btn-sm" data-del=del id="${item.gid}">删除</button>
                </td>
            <tr>
            
        `
        tbody.innerHTML += str;
    })
}


/* 
    分页操作
*/
// 第一页的数据
function first() {
    // 将分页的页数修改成第一页
    sessionStorage.setItem("currentPage", 1)
    // 将第一页的数据获取到,渲染
    let goodstInfo = sessionStorage.getItem("goodstInfo");
    goodstInfo = JSON.parse(goodstInfo).slice(0, 10);
    //渲染数据
    renderPage(goodstInfo)
}


// 最后一页的数据
function last() {
    // console.log(1111);
    // 获取所有的商品数据
    let goodstInfo = sessionStorage.getItem("goodstInfo");
    goodstInfo = JSON.parse(goodstInfo)
    // 计算当前页 => 最后一页
    sessionStorage.setItem("currentPage", Math.ceil(goodstInfo.length / 10))
    //将最后一页的数据计算出来
    if (goodstInfo.length % 10 != 0) {
        goodstInfo = goodstInfo.slice(Math.floor(goodstInfo.length / 10) * 10, goodstInfo.length)
    } else {
        goodstInfo = goodstInfo.slice(Math.floor(goodstInfo.length / 10 - 1) * 10, goodstInfo.length)
    }
    //渲染数据
    renderPage(goodstInfo)
}


// 上一页的数据
function up() {
    // 获取当前页
    let currentPage = +sessionStorage.getItem("currentPage")
    // 当前页不能小于1页
    currentPage = currentPage - 1
    if (currentPage < 1) currentPage = 1
    // 存储当前页
    sessionStorage.setItem("currentPage", currentPage)
    // 获取所有的商品数据
    let goodstInfo = sessionStorage.getItem("goodstInfo");
    // 计算出上一页的数据
    goodstInfo = JSON.parse(goodstInfo).slice((currentPage - 1) * 10, currentPage * 10)
    //渲染数据
    renderPage(goodstInfo)
}



// 下一页的数据
function down() {
    // 获取当前页
    let currentPage = +sessionStorage.getItem("currentPage")
    // 获取所有的数据
    let goodstInfo = sessionStorage.getItem("goodstInfo");
    goodstInfo = JSON.parse(goodstInfo)
    // 当前页不能大于尾页
    currentPage = currentPage + 1
    if (currentPage > Math.ceil(goodstInfo.length / 10)) currentPage = Math.ceil(goodstInfo.length / 10)
    // 存储当前页
    sessionStorage.setItem("currentPage", currentPage)
    // 计算出下一页的数据
    goodstInfo = goodstInfo.slice((currentPage - 1) * 10, currentPage * 10)
    //渲染数据
    renderPage(goodstInfo)
}




/* 
    修改商品信息
        1. 获取数据
        2. 校验
        3. 发请求
*/
function goodsUpdate() {
    // console.log(11111);
    // 1、获取数据
    const gid = document.querySelector("#updategid").value
    const bname = document.querySelector("#updatename").value
    const bprice = document.querySelector("#updateprice").value
    const bnumber = document.querySelector("#updatenumber").value
    const bcategory = document.querySelector("#updatecategory").value;
    // console.log(bcategory);
    // console.log(gid, bname, bprice, bnumber, bcategory);
    //2. 校验
    if (!(gid && bname && bprice && bnumber && bcategory)) {
        return alert("请输入完整的数据")
    }
    // 3. 发请求
    Ajax({
        type: "POST",
        url: "http://localhost/lin/server/goodsUpdate.php",
        data: {
            gid,
            bname,
            bprice,
            bnumber,
            bcategory
        },
        success() {
            location.reload();
        }
    })
}




// 删除操作
const tbody = document.querySelector("tbody")
tbody.onclick = function (e) {
    // 删除操作
    if (e.target.dataset.del == "del") {
        const res = confirm("确定删除吗？")
        if (res) {
            Ajax({
                url: "http://localhost/lin/server/goodsDelete.php",
                data: {
                    id: e.target.id
                },
                success(data) {
                    location.reload()
                }
            })
        }
    }
    // 修改
    if (e.target.dataset.edit == 'edit') {
        Ajax({
            url: "http://localhost/lin/server/updateOneGoods.php",
            data: {
                id: e.target.id
            },
            success(data) {
                const updatecategory = document.querySelector("#updatecategory");
                updatecategory.innerHTML = "<option>请选择</option>";
                // 将我们获取到的data数据渲染到修改的模态框当中
                data = JSON.parse(data);
                // console.log(data);
                //渲染商品编号
                document.querySelector("#updategid").value = data.gid;
                //渲染图书名称
                document.querySelector("#updatename").value = data.bname;
                //渲染图书价格
                document.querySelector("#updateprice").value = data.bprice;
                //渲染图书数量
                document.querySelector("#updatenumber").value = data.bnumber;
                //渲染图书类别
                let categoryInfo = sessionStorage.getItem("categoryInfo")
                categoryInfo = JSON.parse(categoryInfo)
                // console.log(categoryInfo);
                // 遍历这个对象
                categoryInfo.forEach(item => {
                    // console.log(item);
                    // 创建option
                    const option = document.createElement("option");
                    if (item.category == data.bcategory) {
                        option.selected = true;
                    }
                    // 将遍历的商品类别显示在option里
                    option.innerHTML = item.category;
                    option.value = item.category;
                    // 将option追加在select里
                    updatecategory.appendChild(option);
                })
            }
        })
    }
}




/* 
    添加数据
        1. 收集表单数据
        2. 校验
        3. 发送请求
*/
function ok() {
    // 1. 收集表单数据
    // const gid = document.querySelector("#goodsid").value
    const bname = document.querySelector("#goodsname").value
    const bprice = document.querySelector("#goodsprice").value
    const bnumber = document.querySelector("#goodnumber").value
    const bcategory = document.querySelector("#category").value;
    // console.log(gid, bname, bprice, bnumber, bcategory);
    //2. 校验
    if (!(bname && bprice && bnumber && bcategory)) {
        return alert("请输入完整的数据")
    }
    // 3. 发请求
    Ajax({
        type: "POST",
        url: "http://localhost/lin/server/goodsAdd.php",
        data: {
            bname,
            bprice,
            bnumber,
            bcategory
        },
        success() {
            location.reload();
        }
    })
}


/* 
        1. 发送一个ajax
        2. 获取图书分类数据,存储到storage里面存储一份
        3. 渲染图书分类数组在模态框里面渲染出来
    */
function renderCategory() {
    Ajax({
        url: "http://localhost/lin/server/categoryAll.php",
        success(data) {
            // 将图书分类数据存储到storage里面
            sessionStorage.setItem("categoryInfo", data)
            //将data转换成对象才能够使用
            data = JSON.parse(data)
            // console.log(data);
            // 渲染图书分类数据
            const category = document.querySelector("#category")
            // console.log(category);
            data.forEach(item => {
                // console.log(item);
                const option = document.createElement("option");
                // console.log(option);
                option.innerHTML = item.category;
                option.value = item.category;
                category.appendChild(option);
            })
        }
    })
}
renderCategory()





/* 
    下拉框搜索
*/
function changeCategroy() {

    const bcategory = document.querySelector("#changeCategroy1").value;
    // console.log(bcategory);
    switch (bcategory) {
        case '1':
            yy = '少儿';
            break;
        case '2':
            yy = '经典名著';
            break;
        case '3':
            yy = '散文诗歌';
            break;
        case '4':
            yy = '休闲读物';
            break;
        case '5':
            yy = '历史小说';
            break;
    }
    Ajax({
        url: "http://localhost/lin/server/goodsFindCategory.php",
        data: {
            yy
        },
        success(msg) {
            // console.log(msg);
            //将数据存储到Storage里面
            sessionStorage.setItem("goodstInfo", msg)
            //将msg转化对象
            let goodstInfo = JSON.parse(msg)
            //获取前10条数据
            goodstInfo = goodstInfo.slice(0, 10)
            //当前页是第一页
            sessionStorage.setItem("currentPage", 1)
            //渲染数据
            renderPage(goodstInfo)
        }
    })
}


/* 
    根据名字进行模糊查询
*/
function queryLikeName() {
    /* 
        1. 获取用户输入的名字
        2. 判断名字不为空
        3. 发送ajax获取数据,渲染
        */
    //1. 获取用户输入的名字
    const likeName = document.querySelector(".likeName").value;
    //console.log(likeName);
    //2. 非空判断
    if (likeName.trim().length == 0) {
        return alert("请输入名字")
    }
    //3. 发送ajax,获取数据
    Ajax({
        url: "http://localhost/lin/server/goodsLikeName.php",
        data: {
            aa: likeName,
        },
        success(msg) {
            // console.log(msg);
            if (msg == '[]') {
                alert("查无此书!")

                // $("#likeName").val("")
            } else {
                //将数据存储到Storage里面
                sessionStorage.setItem("goodstInfo", msg)
                //将msg转化对象
                let goodstInfo = JSON.parse(msg)
                // console.log(goodstInfo);
                //获取前10条数据
                goodstInfo = goodstInfo.slice(0, 10)
                //当前页是第一页
                sessionStorage.setItem("currentPage", 1)
                //渲染数据
                renderPage(goodstInfo)
            }
        }
    })
}